using Google.ProtocolBuffers;
using Google.ProtocolBuffers.Collections;
using micromsg.Proto;
using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Runtime.CompilerServices;
namespace micromsg
{
	[GeneratedCode("ProtoGen", "2.3.0.277"), DebuggerNonUserCode, CompilerGenerated]
	public sealed class ContactProfile : GeneratedMessageLite<ContactProfile, ContactProfile.Builder>
	{
		[GeneratedCode("ProtoGen", "2.3.0.277"), DebuggerNonUserCode, CompilerGenerated]
		public sealed class Builder : GeneratedBuilderLite<ContactProfile, ContactProfile.Builder>
		{
			private bool resultIsReadOnly;
			private ContactProfile result;
			protected override ContactProfile.Builder ThisBuilder
			{
				get
				{
					return this;
				}
			}
			public override bool IsInitialized
			{
				get
				{
					return this.result.IsInitialized;
				}
			}
			protected override ContactProfile MessageBeingBuilt
			{
				get
				{
					return this.PrepareBuilder();
				}
			}
			public override ContactProfile DefaultInstanceForType
			{
				get
				{
					return ContactProfile.DefaultInstance;
				}
			}
			public string UserName
			{
				get
				{
					return this.result.UserName;
				}
				set
				{
					this.SetUserName(value);
				}
			}
			public string NickName
			{
				get
				{
					return this.result.NickName;
				}
				set
				{
					this.SetNickName(value);
				}
			}
			public string PYInitial
			{
				get
				{
					return this.result.PYInitial;
				}
				set
				{
					this.SetPYInitial(value);
				}
			}
			public string QuanPin
			{
				get
				{
					return this.result.QuanPin;
				}
				set
				{
					this.SetQuanPin(value);
				}
			}
			public int Sex
			{
				get
				{
					return this.result.Sex;
				}
				set
				{
					this.SetSex(value);
				}
			}
			public SKBuiltinBuffer_t ImgBuf
			{
				get
				{
					return this.result.ImgBuf;
				}
				set
				{
					this.SetImgBuf(value);
				}
			}
			public uint BitMask
			{
				get
				{
					return this.result.BitMask;
				}
				set
				{
					this.SetBitMask(value);
				}
			}
			public uint BitVal
			{
				get
				{
					return this.result.BitVal;
				}
				set
				{
					this.SetBitVal(value);
				}
			}
			public string Remark
			{
				get
				{
					return this.result.Remark;
				}
				set
				{
					this.SetRemark(value);
				}
			}
			public uint ImgRet
			{
				get
				{
					return this.result.ImgRet;
				}
				set
				{
					this.SetImgRet(value);
				}
			}
			public string RemarkPYInitial
			{
				get
				{
					return this.result.RemarkPYInitial;
				}
				set
				{
					this.SetRemarkPYInitial(value);
				}
			}
			public string RemarkQuanPin
			{
				get
				{
					return this.result.RemarkQuanPin;
				}
				set
				{
					this.SetRemarkQuanPin(value);
				}
			}
			public uint ContactType
			{
				get
				{
					return this.result.ContactType;
				}
				set
				{
					this.SetContactType(value);
				}
			}
			public uint RoomInfoCount
			{
				get
				{
					return this.result.RoomInfoCount;
				}
				set
				{
					this.SetRoomInfoCount(value);
				}
			}
			public IPopsicleList<RoomInfo> RoomInfoListList
			{
				get
				{
					return this.PrepareBuilder().roomInfoList_;
				}
			}
			public int RoomInfoListCount
			{
				get
				{
					return this.result.RoomInfoListCount;
				}
			}
			public string DomainList
			{
				get
				{
					return this.result.DomainList;
				}
				set
				{
					this.SetDomainList(value);
				}
			}
			public uint ChatRoomNotify
			{
				get
				{
					return this.result.ChatRoomNotify;
				}
				set
				{
					this.SetChatRoomNotify(value);
				}
			}
			public uint AddContactScene
			{
				get
				{
					return this.result.AddContactScene;
				}
				set
				{
					this.SetAddContactScene(value);
				}
			}
			public string ExtInfo
			{
				get
				{
					return this.result.ExtInfo;
				}
				set
				{
					this.SetExtInfo(value);
				}
			}
			public uint ExtUpdateSeq
			{
				get
				{
					return this.result.ExtUpdateSeq;
				}
				set
				{
					this.SetExtUpdateSeq(value);
				}
			}
			public uint ImgUpdateSeq
			{
				get
				{
					return this.result.ImgUpdateSeq;
				}
				set
				{
					this.SetImgUpdateSeq(value);
				}
			}
			public string Alias
			{
				get
				{
					return this.result.Alias;
				}
				set
				{
					this.SetAlias(value);
				}
			}
			public Builder()
			{
				this.result = ContactProfile.DefaultInstance;
				this.resultIsReadOnly = true;
			}
			internal Builder(ContactProfile cloneFrom)
			{
				this.result = cloneFrom;
				this.resultIsReadOnly = true;
			}
			private ContactProfile PrepareBuilder()
			{
				if (this.resultIsReadOnly)
				{
					ContactProfile other = this.result;
					this.result = new ContactProfile();
					this.resultIsReadOnly = false;
					this.MergeFrom(other);
				}
				return this.result;
			}
			public override ContactProfile.Builder Clear()
			{
				this.result = ContactProfile.DefaultInstance;
				this.resultIsReadOnly = true;
				return this;
			}
			public override ContactProfile.Builder Clone()
			{
				if (this.resultIsReadOnly)
				{
					return new ContactProfile.Builder(this.result);
				}
				return new ContactProfile.Builder().MergeFrom(this.result);
			}
			public override ContactProfile BuildPartial()
			{
				if (this.resultIsReadOnly)
				{
					return this.result;
				}
				this.resultIsReadOnly = true;
				return this.result.MakeReadOnly();
			}
			public override ContactProfile.Builder MergeFrom(IMessageLite other)
			{
				if (other is ContactProfile)
				{
					return this.MergeFrom((ContactProfile)other);
				}
				base.MergeFrom(other);
				return this;
			}
			public override ContactProfile.Builder MergeFrom(ContactProfile other)
			{
				return this;
			}
			public override ContactProfile.Builder MergeFrom(ICodedInputStream input)
			{
				return this.MergeFrom(input, ExtensionRegistry.Empty);
			}
			public override ContactProfile.Builder MergeFrom(ICodedInputStream input, ExtensionRegistry extensionRegistry)
			{
				this.PrepareBuilder();
				uint num;
				string text;
				while (input.ReadTag(out num, out text))
				{
					if (num == 0u && text != null)
					{
						int num2 = Array.BinarySearch<string>(ContactProfile._contactProfileFieldNames, text, StringComparer.get_Ordinal());
						if (num2 < 0)
						{
							this.ParseUnknownField(input, extensionRegistry, num, text);
							continue;
						}
						num = ContactProfile._contactProfileFieldTags[num2];
					}
					uint num3 = num;
					if (num3 <= 80u)
					{
						if (num3 <= 34u)
						{
							if (num3 <= 10u)
							{
								if (num3 == 0u)
								{
									throw InvalidProtocolBufferException.InvalidTag();
								}
								if (num3 == 10u)
								{
									this.result.hasUserName = input.ReadString(ref this.result.userName_);
									continue;
								}
							}
							else
							{
								if (num3 == 18u)
								{
									this.result.hasNickName = input.ReadString(ref this.result.nickName_);
									continue;
								}
								if (num3 == 26u)
								{
									this.result.hasPYInitial = input.ReadString(ref this.result.pYInitial_);
									continue;
								}
								if (num3 == 34u)
								{
									this.result.hasQuanPin = input.ReadString(ref this.result.quanPin_);
									continue;
								}
							}
						}
						else
						{
							if (num3 <= 56u)
							{
								if (num3 == 40u)
								{
									this.result.hasSex = input.ReadInt32(ref this.result.sex_);
									continue;
								}
								if (num3 == 50u)
								{
									SKBuiltinBuffer_t.Builder builder = SKBuiltinBuffer_t.CreateBuilder();
									if (this.result.hasImgBuf)
									{
										builder.MergeFrom(this.ImgBuf);
									}
									input.ReadMessage(builder, extensionRegistry);
									this.ImgBuf = builder.BuildPartial();
									continue;
								}
								if (num3 == 56u)
								{
									this.result.hasBitMask = input.ReadUInt32(ref this.result.bitMask_);
									continue;
								}
							}
							else
							{
								if (num3 == 64u)
								{
									this.result.hasBitVal = input.ReadUInt32(ref this.result.bitVal_);
									continue;
								}
								if (num3 == 74u)
								{
									this.result.hasRemark = input.ReadString(ref this.result.remark_);
									continue;
								}
								if (num3 == 80u)
								{
									this.result.hasImgRet = input.ReadUInt32(ref this.result.imgRet_);
									continue;
								}
							}
						}
					}
					else
					{
						if (num3 <= 130u)
						{
							if (num3 <= 104u)
							{
								if (num3 == 90u)
								{
									this.result.hasRemarkPYInitial = input.ReadString(ref this.result.remarkPYInitial_);
									continue;
								}
								if (num3 == 98u)
								{
									this.result.hasRemarkQuanPin = input.ReadString(ref this.result.remarkQuanPin_);
									continue;
								}
								if (num3 == 104u)
								{
									this.result.hasContactType = input.ReadUInt32(ref this.result.contactType_);
									continue;
								}
							}
							else
							{
								if (num3 == 112u)
								{
									this.result.hasRoomInfoCount = input.ReadUInt32(ref this.result.roomInfoCount_);
									continue;
								}
								if (num3 == 122u)
								{
									input.ReadMessageArray<RoomInfo>(num, text, this.result.roomInfoList_, RoomInfo.DefaultInstance, extensionRegistry);
									continue;
								}
								if (num3 == 130u)
								{
									this.result.hasDomainList = input.ReadString(ref this.result.domainList_);
									continue;
								}
							}
						}
						else
						{
							if (num3 <= 154u)
							{
								if (num3 == 136u)
								{
									this.result.hasChatRoomNotify = input.ReadUInt32(ref this.result.chatRoomNotify_);
									continue;
								}
								if (num3 == 144u)
								{
									this.result.hasAddContactScene = input.ReadUInt32(ref this.result.addContactScene_);
									continue;
								}
								if (num3 == 154u)
								{
									this.result.hasExtInfo = input.ReadString(ref this.result.extInfo_);
									continue;
								}
							}
							else
							{
								if (num3 == 160u)
								{
									this.result.hasExtUpdateSeq = input.ReadUInt32(ref this.result.extUpdateSeq_);
									continue;
								}
								if (num3 == 168u)
								{
									this.result.hasImgUpdateSeq = input.ReadUInt32(ref this.result.imgUpdateSeq_);
									continue;
								}
								if (num3 == 178u)
								{
									this.result.hasAlias = input.ReadString(ref this.result.alias_);
									continue;
								}
							}
						}
					}
					if (WireFormat.IsEndGroupTag(num))
					{
						return this;
					}
					this.ParseUnknownField(input, extensionRegistry, num, text);
				}
				return this;
			}
			public ContactProfile.Builder SetUserName(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasUserName = true;
				this.result.userName_ = value;
				return this;
			}
			public ContactProfile.Builder ClearUserName()
			{
				this.PrepareBuilder();
				this.result.hasUserName = false;
				this.result.userName_ = "";
				return this;
			}
			public ContactProfile.Builder SetNickName(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasNickName = true;
				this.result.nickName_ = value;
				return this;
			}
			public ContactProfile.Builder ClearNickName()
			{
				this.PrepareBuilder();
				this.result.hasNickName = false;
				this.result.nickName_ = "";
				return this;
			}
			public ContactProfile.Builder SetPYInitial(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasPYInitial = true;
				this.result.pYInitial_ = value;
				return this;
			}
			public ContactProfile.Builder ClearPYInitial()
			{
				this.PrepareBuilder();
				this.result.hasPYInitial = false;
				this.result.pYInitial_ = "";
				return this;
			}
			public ContactProfile.Builder SetQuanPin(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasQuanPin = true;
				this.result.quanPin_ = value;
				return this;
			}
			public ContactProfile.Builder ClearQuanPin()
			{
				this.PrepareBuilder();
				this.result.hasQuanPin = false;
				this.result.quanPin_ = "";
				return this;
			}
			public ContactProfile.Builder SetSex(int value)
			{
				this.PrepareBuilder();
				this.result.hasSex = true;
				this.result.sex_ = value;
				return this;
			}
			public ContactProfile.Builder ClearSex()
			{
				this.PrepareBuilder();
				this.result.hasSex = false;
				this.result.sex_ = 0;
				return this;
			}
			public ContactProfile.Builder SetImgBuf(SKBuiltinBuffer_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasImgBuf = true;
				this.result.imgBuf_ = value;
				return this;
			}
			public ContactProfile.Builder SetImgBuf(SKBuiltinBuffer_t.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.hasImgBuf = true;
				this.result.imgBuf_ = builderForValue.Build();
				return this;
			}
			public ContactProfile.Builder MergeImgBuf(SKBuiltinBuffer_t value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				if (this.result.hasImgBuf && this.result.imgBuf_ != SKBuiltinBuffer_t.DefaultInstance)
				{
					this.result.imgBuf_ = SKBuiltinBuffer_t.CreateBuilder(this.result.imgBuf_).MergeFrom(value).BuildPartial();
				}
				else
				{
					this.result.imgBuf_ = value;
				}
				this.result.hasImgBuf = true;
				return this;
			}
			public ContactProfile.Builder ClearImgBuf()
			{
				this.PrepareBuilder();
				this.result.hasImgBuf = false;
				this.result.imgBuf_ = null;
				return this;
			}
			public ContactProfile.Builder SetBitMask(uint value)
			{
				this.PrepareBuilder();
				this.result.hasBitMask = true;
				this.result.bitMask_ = value;
				return this;
			}
			public ContactProfile.Builder ClearBitMask()
			{
				this.PrepareBuilder();
				this.result.hasBitMask = false;
				this.result.bitMask_ = 0u;
				return this;
			}
			public ContactProfile.Builder SetBitVal(uint value)
			{
				this.PrepareBuilder();
				this.result.hasBitVal = true;
				this.result.bitVal_ = value;
				return this;
			}
			public ContactProfile.Builder ClearBitVal()
			{
				this.PrepareBuilder();
				this.result.hasBitVal = false;
				this.result.bitVal_ = 0u;
				return this;
			}
			public ContactProfile.Builder SetRemark(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasRemark = true;
				this.result.remark_ = value;
				return this;
			}
			public ContactProfile.Builder ClearRemark()
			{
				this.PrepareBuilder();
				this.result.hasRemark = false;
				this.result.remark_ = "";
				return this;
			}
			public ContactProfile.Builder SetImgRet(uint value)
			{
				this.PrepareBuilder();
				this.result.hasImgRet = true;
				this.result.imgRet_ = value;
				return this;
			}
			public ContactProfile.Builder ClearImgRet()
			{
				this.PrepareBuilder();
				this.result.hasImgRet = false;
				this.result.imgRet_ = 0u;
				return this;
			}
			public ContactProfile.Builder SetRemarkPYInitial(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasRemarkPYInitial = true;
				this.result.remarkPYInitial_ = value;
				return this;
			}
			public ContactProfile.Builder ClearRemarkPYInitial()
			{
				this.PrepareBuilder();
				this.result.hasRemarkPYInitial = false;
				this.result.remarkPYInitial_ = "";
				return this;
			}
			public ContactProfile.Builder SetRemarkQuanPin(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasRemarkQuanPin = true;
				this.result.remarkQuanPin_ = value;
				return this;
			}
			public ContactProfile.Builder ClearRemarkQuanPin()
			{
				this.PrepareBuilder();
				this.result.hasRemarkQuanPin = false;
				this.result.remarkQuanPin_ = "";
				return this;
			}
			public ContactProfile.Builder SetContactType(uint value)
			{
				this.PrepareBuilder();
				this.result.hasContactType = true;
				this.result.contactType_ = value;
				return this;
			}
			public ContactProfile.Builder ClearContactType()
			{
				this.PrepareBuilder();
				this.result.hasContactType = false;
				this.result.contactType_ = 0u;
				return this;
			}
			public ContactProfile.Builder SetRoomInfoCount(uint value)
			{
				this.PrepareBuilder();
				this.result.hasRoomInfoCount = true;
				this.result.roomInfoCount_ = value;
				return this;
			}
			public ContactProfile.Builder ClearRoomInfoCount()
			{
				this.PrepareBuilder();
				this.result.hasRoomInfoCount = false;
				this.result.roomInfoCount_ = 0u;
				return this;
			}
			public RoomInfo GetRoomInfoList(int index)
			{
				return this.result.GetRoomInfoList(index);
			}
			public ContactProfile.Builder SetRoomInfoList(int index, RoomInfo value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.roomInfoList_[index] = value;
				return this;
			}
			public ContactProfile.Builder SetRoomInfoList(int index, RoomInfo.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.roomInfoList_[index] = builderForValue.Build();
				return this;
			}
			public ContactProfile.Builder AddRoomInfoList(RoomInfo value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.roomInfoList_.Add(value);
				return this;
			}
			public ContactProfile.Builder AddRoomInfoList(RoomInfo.Builder builderForValue)
			{
				ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
				this.PrepareBuilder();
				this.result.roomInfoList_.Add(builderForValue.Build());
				return this;
			}
			public ContactProfile.Builder AddRangeRoomInfoList(IEnumerable<RoomInfo> values)
			{
				this.PrepareBuilder();
				this.result.roomInfoList_.Add(values);
				return this;
			}
			public ContactProfile.Builder ClearRoomInfoList()
			{
				this.PrepareBuilder();
				this.result.roomInfoList_.Clear();
				return this;
			}
			public ContactProfile.Builder SetDomainList(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasDomainList = true;
				this.result.domainList_ = value;
				return this;
			}
			public ContactProfile.Builder ClearDomainList()
			{
				this.PrepareBuilder();
				this.result.hasDomainList = false;
				this.result.domainList_ = "";
				return this;
			}
			public ContactProfile.Builder SetChatRoomNotify(uint value)
			{
				this.PrepareBuilder();
				this.result.hasChatRoomNotify = true;
				this.result.chatRoomNotify_ = value;
				return this;
			}
			public ContactProfile.Builder ClearChatRoomNotify()
			{
				this.PrepareBuilder();
				this.result.hasChatRoomNotify = false;
				this.result.chatRoomNotify_ = 0u;
				return this;
			}
			public ContactProfile.Builder SetAddContactScene(uint value)
			{
				this.PrepareBuilder();
				this.result.hasAddContactScene = true;
				this.result.addContactScene_ = value;
				return this;
			}
			public ContactProfile.Builder ClearAddContactScene()
			{
				this.PrepareBuilder();
				this.result.hasAddContactScene = false;
				this.result.addContactScene_ = 0u;
				return this;
			}
			public ContactProfile.Builder SetExtInfo(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasExtInfo = true;
				this.result.extInfo_ = value;
				return this;
			}
			public ContactProfile.Builder ClearExtInfo()
			{
				this.PrepareBuilder();
				this.result.hasExtInfo = false;
				this.result.extInfo_ = "";
				return this;
			}
			public ContactProfile.Builder SetExtUpdateSeq(uint value)
			{
				this.PrepareBuilder();
				this.result.hasExtUpdateSeq = true;
				this.result.extUpdateSeq_ = value;
				return this;
			}
			public ContactProfile.Builder ClearExtUpdateSeq()
			{
				this.PrepareBuilder();
				this.result.hasExtUpdateSeq = false;
				this.result.extUpdateSeq_ = 0u;
				return this;
			}
			public ContactProfile.Builder SetImgUpdateSeq(uint value)
			{
				this.PrepareBuilder();
				this.result.hasImgUpdateSeq = true;
				this.result.imgUpdateSeq_ = value;
				return this;
			}
			public ContactProfile.Builder ClearImgUpdateSeq()
			{
				this.PrepareBuilder();
				this.result.hasImgUpdateSeq = false;
				this.result.imgUpdateSeq_ = 0u;
				return this;
			}
			public ContactProfile.Builder SetAlias(string value)
			{
				ThrowHelper.ThrowIfNull(value, "value");
				this.PrepareBuilder();
				this.result.hasAlias = true;
				this.result.alias_ = value;
				return this;
			}
			public ContactProfile.Builder ClearAlias()
			{
				this.PrepareBuilder();
				this.result.hasAlias = false;
				this.result.alias_ = "";
				return this;
			}
		}
		public const int UserNameFieldNumber = 1;
		public const int NickNameFieldNumber = 2;
		public const int PYInitialFieldNumber = 3;
		public const int QuanPinFieldNumber = 4;
		public const int SexFieldNumber = 5;
		public const int ImgBufFieldNumber = 6;
		public const int BitMaskFieldNumber = 7;
		public const int BitValFieldNumber = 8;
		public const int RemarkFieldNumber = 9;
		public const int ImgRetFieldNumber = 10;
		public const int RemarkPYInitialFieldNumber = 11;
		public const int RemarkQuanPinFieldNumber = 12;
		public const int ContactTypeFieldNumber = 13;
		public const int RoomInfoCountFieldNumber = 14;
		public const int RoomInfoListFieldNumber = 15;
		public const int DomainListFieldNumber = 16;
		public const int ChatRoomNotifyFieldNumber = 17;
		public const int AddContactSceneFieldNumber = 18;
		public const int ExtInfoFieldNumber = 19;
		public const int ExtUpdateSeqFieldNumber = 20;
		public const int ImgUpdateSeqFieldNumber = 21;
		public const int AliasFieldNumber = 22;
		private static readonly ContactProfile defaultInstance;
		private static readonly string[] _contactProfileFieldNames;
		private static readonly uint[] _contactProfileFieldTags;
		private bool hasUserName;
		private string userName_ = "";
		private bool hasNickName;
		private string nickName_ = "";
		private bool hasPYInitial;
		private string pYInitial_ = "";
		private bool hasQuanPin;
		private string quanPin_ = "";
		private bool hasSex;
		private int sex_;
		private bool hasImgBuf;
		private SKBuiltinBuffer_t imgBuf_;
		private bool hasBitMask;
		private uint bitMask_;
		private bool hasBitVal;
		private uint bitVal_;
		private bool hasRemark;
		private string remark_ = "";
		private bool hasImgRet;
		private uint imgRet_;
		private bool hasRemarkPYInitial;
		private string remarkPYInitial_ = "";
		private bool hasRemarkQuanPin;
		private string remarkQuanPin_ = "";
		private bool hasContactType;
		private uint contactType_;
		private bool hasRoomInfoCount;
		private uint roomInfoCount_;
		private PopsicleList<RoomInfo> roomInfoList_ = new PopsicleList<RoomInfo>();
		private bool hasDomainList;
		private string domainList_ = "";
		private bool hasChatRoomNotify;
		private uint chatRoomNotify_;
		private bool hasAddContactScene;
		private uint addContactScene_;
		private bool hasExtInfo;
		private string extInfo_ = "";
		private bool hasExtUpdateSeq;
		private uint extUpdateSeq_;
		private bool hasImgUpdateSeq;
		private uint imgUpdateSeq_;
		private bool hasAlias;
		private string alias_ = "";
		private int memoizedSerializedSize = -1;
		public static ContactProfile DefaultInstance
		{
			get
			{
				return ContactProfile.defaultInstance;
			}
		}
		public override ContactProfile DefaultInstanceForType
		{
			get
			{
				return ContactProfile.DefaultInstance;
			}
		}
		protected override ContactProfile ThisMessage
		{
			get
			{
				return this;
			}
		}
		public string UserName
		{
			get
			{
				return this.userName_;
			}
		}
		public string NickName
		{
			get
			{
				return this.nickName_;
			}
		}
		public string PYInitial
		{
			get
			{
				return this.pYInitial_;
			}
		}
		public string QuanPin
		{
			get
			{
				return this.quanPin_;
			}
		}
		public int Sex
		{
			get
			{
				return this.sex_;
			}
		}
		public SKBuiltinBuffer_t ImgBuf
		{
			get
			{
				return this.imgBuf_ ?? SKBuiltinBuffer_t.DefaultInstance;
			}
		}
		public uint BitMask
		{
			get
			{
				return this.bitMask_;
			}
		}
		public uint BitVal
		{
			get
			{
				return this.bitVal_;
			}
		}
		public string Remark
		{
			get
			{
				return this.remark_;
			}
		}
		public uint ImgRet
		{
			get
			{
				return this.imgRet_;
			}
		}
		public string RemarkPYInitial
		{
			get
			{
				return this.remarkPYInitial_;
			}
		}
		public string RemarkQuanPin
		{
			get
			{
				return this.remarkQuanPin_;
			}
		}
		public uint ContactType
		{
			get
			{
				return this.contactType_;
			}
		}
		public uint RoomInfoCount
		{
			get
			{
				return this.roomInfoCount_;
			}
		}
		public IList<RoomInfo> RoomInfoListList
		{
			get
			{
				return this.roomInfoList_;
			}
		}
		public int RoomInfoListCount
		{
			get
			{
				return this.roomInfoList_.Count;
			}
		}
		public string DomainList
		{
			get
			{
				return this.domainList_;
			}
		}
		public uint ChatRoomNotify
		{
			get
			{
				return this.chatRoomNotify_;
			}
		}
		public uint AddContactScene
		{
			get
			{
				return this.addContactScene_;
			}
		}
		public string ExtInfo
		{
			get
			{
				return this.extInfo_;
			}
		}
		public uint ExtUpdateSeq
		{
			get
			{
				return this.extUpdateSeq_;
			}
		}
		public uint ImgUpdateSeq
		{
			get
			{
				return this.imgUpdateSeq_;
			}
		}
		public string Alias
		{
			get
			{
				return this.alias_;
			}
		}
		public override bool IsInitialized
		{
			get
			{
				if (!this.hasSex)
				{
					return false;
				}
				if (!this.hasImgBuf)
				{
					return false;
				}
				if (!this.hasBitMask)
				{
					return false;
				}
				if (!this.hasBitVal)
				{
					return false;
				}
				if (!this.hasImgRet)
				{
					return false;
				}
				if (!this.hasContactType)
				{
					return false;
				}
				if (!this.hasRoomInfoCount)
				{
					return false;
				}
				if (!this.hasChatRoomNotify)
				{
					return false;
				}
				if (!this.hasAddContactScene)
				{
					return false;
				}
				if (!this.hasExtUpdateSeq)
				{
					return false;
				}
				if (!this.hasImgUpdateSeq)
				{
					return false;
				}
				if (!this.ImgBuf.IsInitialized)
				{
					return false;
				}
				using (IEnumerator<RoomInfo> enumerator = this.RoomInfoListList.GetEnumerator())
				{
					while (enumerator.MoveNext())
					{
						RoomInfo current = enumerator.get_Current();
						if (!current.IsInitialized)
						{
							return false;
						}
					}
				}
				return true;
			}
		}
		public override int SerializedSize
		{
			get
			{
				int num = this.memoizedSerializedSize;
				if (num != -1)
				{
					return num;
				}
				num = 0;
				if (this.hasUserName)
				{
					num += CodedOutputStream.ComputeStringSize(1, this.UserName);
				}
				if (this.hasNickName)
				{
					num += CodedOutputStream.ComputeStringSize(2, this.NickName);
				}
				if (this.hasPYInitial)
				{
					num += CodedOutputStream.ComputeStringSize(3, this.PYInitial);
				}
				if (this.hasQuanPin)
				{
					num += CodedOutputStream.ComputeStringSize(4, this.QuanPin);
				}
				if (this.hasSex)
				{
					num += CodedOutputStream.ComputeInt32Size(5, this.Sex);
				}
				if (this.hasImgBuf)
				{
					num += CodedOutputStream.ComputeMessageSize(6, this.ImgBuf);
				}
				if (this.hasBitMask)
				{
					num += CodedOutputStream.ComputeUInt32Size(7, this.BitMask);
				}
				if (this.hasBitVal)
				{
					num += CodedOutputStream.ComputeUInt32Size(8, this.BitVal);
				}
				if (this.hasRemark)
				{
					num += CodedOutputStream.ComputeStringSize(9, this.Remark);
				}
				if (this.hasImgRet)
				{
					num += CodedOutputStream.ComputeUInt32Size(10, this.ImgRet);
				}
				if (this.hasRemarkPYInitial)
				{
					num += CodedOutputStream.ComputeStringSize(11, this.RemarkPYInitial);
				}
				if (this.hasRemarkQuanPin)
				{
					num += CodedOutputStream.ComputeStringSize(12, this.RemarkQuanPin);
				}
				if (this.hasContactType)
				{
					num += CodedOutputStream.ComputeUInt32Size(13, this.ContactType);
				}
				if (this.hasRoomInfoCount)
				{
					num += CodedOutputStream.ComputeUInt32Size(14, this.RoomInfoCount);
				}
				using (IEnumerator<RoomInfo> enumerator = this.RoomInfoListList.GetEnumerator())
				{
					while (enumerator.MoveNext())
					{
						RoomInfo current = enumerator.get_Current();
						num += CodedOutputStream.ComputeMessageSize(15, current);
					}
				}
				if (this.hasDomainList)
				{
					num += CodedOutputStream.ComputeStringSize(16, this.DomainList);
				}
				if (this.hasChatRoomNotify)
				{
					num += CodedOutputStream.ComputeUInt32Size(17, this.ChatRoomNotify);
				}
				if (this.hasAddContactScene)
				{
					num += CodedOutputStream.ComputeUInt32Size(18, this.AddContactScene);
				}
				if (this.hasExtInfo)
				{
					num += CodedOutputStream.ComputeStringSize(19, this.ExtInfo);
				}
				if (this.hasExtUpdateSeq)
				{
					num += CodedOutputStream.ComputeUInt32Size(20, this.ExtUpdateSeq);
				}
				if (this.hasImgUpdateSeq)
				{
					num += CodedOutputStream.ComputeUInt32Size(21, this.ImgUpdateSeq);
				}
				if (this.hasAlias)
				{
					num += CodedOutputStream.ComputeStringSize(22, this.Alias);
				}
				this.memoizedSerializedSize = num;
				return num;
			}
		}
		private ContactProfile()
		{
		}
		public RoomInfo GetRoomInfoList(int index)
		{
			return this.roomInfoList_[index];
		}
		public override void WriteTo(ICodedOutputStream output)
		{
			int arg_06_0 = this.SerializedSize;
			string[] contactProfileFieldNames = ContactProfile._contactProfileFieldNames;
			if (this.hasUserName)
			{
				output.WriteString(1, contactProfileFieldNames[21], this.UserName);
			}
			if (this.hasNickName)
			{
				output.WriteString(2, contactProfileFieldNames[12], this.NickName);
			}
			if (this.hasPYInitial)
			{
				output.WriteString(3, contactProfileFieldNames[13], this.PYInitial);
			}
			if (this.hasQuanPin)
			{
				output.WriteString(4, contactProfileFieldNames[14], this.QuanPin);
			}
			if (this.hasSex)
			{
				output.WriteInt32(5, contactProfileFieldNames[20], this.Sex);
			}
			if (this.hasImgBuf)
			{
				output.WriteMessage(6, contactProfileFieldNames[9], this.ImgBuf);
			}
			if (this.hasBitMask)
			{
				output.WriteUInt32(7, contactProfileFieldNames[2], this.BitMask);
			}
			if (this.hasBitVal)
			{
				output.WriteUInt32(8, contactProfileFieldNames[3], this.BitVal);
			}
			if (this.hasRemark)
			{
				output.WriteString(9, contactProfileFieldNames[15], this.Remark);
			}
			if (this.hasImgRet)
			{
				output.WriteUInt32(10, contactProfileFieldNames[10], this.ImgRet);
			}
			if (this.hasRemarkPYInitial)
			{
				output.WriteString(11, contactProfileFieldNames[16], this.RemarkPYInitial);
			}
			if (this.hasRemarkQuanPin)
			{
				output.WriteString(12, contactProfileFieldNames[17], this.RemarkQuanPin);
			}
			if (this.hasContactType)
			{
				output.WriteUInt32(13, contactProfileFieldNames[5], this.ContactType);
			}
			if (this.hasRoomInfoCount)
			{
				output.WriteUInt32(14, contactProfileFieldNames[18], this.RoomInfoCount);
			}
			if (this.roomInfoList_.Count > 0)
			{
				output.WriteMessageArray<RoomInfo>(15, contactProfileFieldNames[19], this.roomInfoList_);
			}
			if (this.hasDomainList)
			{
				output.WriteString(16, contactProfileFieldNames[6], this.DomainList);
			}
			if (this.hasChatRoomNotify)
			{
				output.WriteUInt32(17, contactProfileFieldNames[4], this.ChatRoomNotify);
			}
			if (this.hasAddContactScene)
			{
				output.WriteUInt32(18, contactProfileFieldNames[0], this.AddContactScene);
			}
			if (this.hasExtInfo)
			{
				output.WriteString(19, contactProfileFieldNames[7], this.ExtInfo);
			}
			if (this.hasExtUpdateSeq)
			{
				output.WriteUInt32(20, contactProfileFieldNames[8], this.ExtUpdateSeq);
			}
			if (this.hasImgUpdateSeq)
			{
				output.WriteUInt32(21, contactProfileFieldNames[11], this.ImgUpdateSeq);
			}
			if (this.hasAlias)
			{
				output.WriteString(22, contactProfileFieldNames[1], this.Alias);
			}
		}
		public override int GetHashCode()
		{
			int num = base.GetType().GetHashCode();
			if (this.hasUserName)
			{
				num ^= this.userName_.GetHashCode();
			}
			if (this.hasNickName)
			{
				num ^= this.nickName_.GetHashCode();
			}
			if (this.hasPYInitial)
			{
				num ^= this.pYInitial_.GetHashCode();
			}
			if (this.hasQuanPin)
			{
				num ^= this.quanPin_.GetHashCode();
			}
			if (this.hasSex)
			{
				num ^= this.sex_.GetHashCode();
			}
			if (this.hasImgBuf)
			{
				num ^= this.imgBuf_.GetHashCode();
			}
			if (this.hasBitMask)
			{
				num ^= this.bitMask_.GetHashCode();
			}
			if (this.hasBitVal)
			{
				num ^= this.bitVal_.GetHashCode();
			}
			if (this.hasRemark)
			{
				num ^= this.remark_.GetHashCode();
			}
			if (this.hasImgRet)
			{
				num ^= this.imgRet_.GetHashCode();
			}
			if (this.hasRemarkPYInitial)
			{
				num ^= this.remarkPYInitial_.GetHashCode();
			}
			if (this.hasRemarkQuanPin)
			{
				num ^= this.remarkQuanPin_.GetHashCode();
			}
			if (this.hasContactType)
			{
				num ^= this.contactType_.GetHashCode();
			}
			if (this.hasRoomInfoCount)
			{
				num ^= this.roomInfoCount_.GetHashCode();
			}
			using (IEnumerator<RoomInfo> enumerator = this.roomInfoList_.GetEnumerator())
			{
				while (enumerator.MoveNext())
				{
					RoomInfo current = enumerator.get_Current();
					num ^= current.GetHashCode();
				}
			}
			if (this.hasDomainList)
			{
				num ^= this.domainList_.GetHashCode();
			}
			if (this.hasChatRoomNotify)
			{
				num ^= this.chatRoomNotify_.GetHashCode();
			}
			if (this.hasAddContactScene)
			{
				num ^= this.addContactScene_.GetHashCode();
			}
			if (this.hasExtInfo)
			{
				num ^= this.extInfo_.GetHashCode();
			}
			if (this.hasExtUpdateSeq)
			{
				num ^= this.extUpdateSeq_.GetHashCode();
			}
			if (this.hasImgUpdateSeq)
			{
				num ^= this.imgUpdateSeq_.GetHashCode();
			}
			if (this.hasAlias)
			{
				num ^= this.alias_.GetHashCode();
			}
			return num;
		}
		public override bool Equals(object object_0)
		{
			ContactProfile contactProfile = object_0 as ContactProfile;
			if (contactProfile == null)
			{
				return false;
			}
			if (this.hasUserName != contactProfile.hasUserName || (this.hasUserName && !this.userName_.Equals(contactProfile.userName_)))
			{
				return false;
			}
			if (this.hasNickName != contactProfile.hasNickName || (this.hasNickName && !this.nickName_.Equals(contactProfile.nickName_)))
			{
				return false;
			}
			if (this.hasPYInitial != contactProfile.hasPYInitial || (this.hasPYInitial && !this.pYInitial_.Equals(contactProfile.pYInitial_)))
			{
				return false;
			}
			if (this.hasQuanPin != contactProfile.hasQuanPin || (this.hasQuanPin && !this.quanPin_.Equals(contactProfile.quanPin_)))
			{
				return false;
			}
			if (this.hasSex != contactProfile.hasSex || (this.hasSex && !this.sex_.Equals(contactProfile.sex_)))
			{
				return false;
			}
			if (this.hasImgBuf != contactProfile.hasImgBuf || (this.hasImgBuf && !this.imgBuf_.Equals(contactProfile.imgBuf_)))
			{
				return false;
			}
			if (this.hasBitMask != contactProfile.hasBitMask || (this.hasBitMask && !this.bitMask_.Equals(contactProfile.bitMask_)))
			{
				return false;
			}
			if (this.hasBitVal != contactProfile.hasBitVal || (this.hasBitVal && !this.bitVal_.Equals(contactProfile.bitVal_)))
			{
				return false;
			}
			if (this.hasRemark != contactProfile.hasRemark || (this.hasRemark && !this.remark_.Equals(contactProfile.remark_)))
			{
				return false;
			}
			if (this.hasImgRet != contactProfile.hasImgRet || (this.hasImgRet && !this.imgRet_.Equals(contactProfile.imgRet_)))
			{
				return false;
			}
			if (this.hasRemarkPYInitial != contactProfile.hasRemarkPYInitial || (this.hasRemarkPYInitial && !this.remarkPYInitial_.Equals(contactProfile.remarkPYInitial_)))
			{
				return false;
			}
			if (this.hasRemarkQuanPin != contactProfile.hasRemarkQuanPin || (this.hasRemarkQuanPin && !this.remarkQuanPin_.Equals(contactProfile.remarkQuanPin_)))
			{
				return false;
			}
			if (this.hasContactType != contactProfile.hasContactType || (this.hasContactType && !this.contactType_.Equals(contactProfile.contactType_)))
			{
				return false;
			}
			if (this.hasRoomInfoCount != contactProfile.hasRoomInfoCount || (this.hasRoomInfoCount && !this.roomInfoCount_.Equals(contactProfile.roomInfoCount_)))
			{
				return false;
			}
			if (this.roomInfoList_.Count != contactProfile.roomInfoList_.Count)
			{
				return false;
			}
			for (int i = 0; i < this.roomInfoList_.Count; i++)
			{
				if (!this.roomInfoList_[i].Equals(contactProfile.roomInfoList_[i]))
				{
					return false;
				}
			}
			return this.hasDomainList == contactProfile.hasDomainList && (!this.hasDomainList || this.domainList_.Equals(contactProfile.domainList_)) && (this.hasChatRoomNotify == contactProfile.hasChatRoomNotify && (!this.hasChatRoomNotify || this.chatRoomNotify_.Equals(contactProfile.chatRoomNotify_))) && (this.hasAddContactScene == contactProfile.hasAddContactScene && (!this.hasAddContactScene || this.addContactScene_.Equals(contactProfile.addContactScene_))) && (this.hasExtInfo == contactProfile.hasExtInfo && (!this.hasExtInfo || this.extInfo_.Equals(contactProfile.extInfo_))) && (this.hasExtUpdateSeq == contactProfile.hasExtUpdateSeq && (!this.hasExtUpdateSeq || this.extUpdateSeq_.Equals(contactProfile.extUpdateSeq_))) && (this.hasImgUpdateSeq == contactProfile.hasImgUpdateSeq && (!this.hasImgUpdateSeq || this.imgUpdateSeq_.Equals(contactProfile.imgUpdateSeq_))) && (this.hasAlias == contactProfile.hasAlias && (!this.hasAlias || this.alias_.Equals(contactProfile.alias_)));
		}
		public override void PrintTo(TextWriter writer)
		{
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("UserName", this.hasUserName, this.userName_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("NickName", this.hasNickName, this.nickName_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("PYInitial", this.hasPYInitial, this.pYInitial_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("QuanPin", this.hasQuanPin, this.quanPin_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("Sex", this.hasSex, this.sex_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("ImgBuf", this.hasImgBuf, this.imgBuf_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("BitMask", this.hasBitMask, this.bitMask_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("BitVal", this.hasBitVal, this.bitVal_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("Remark", this.hasRemark, this.remark_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("ImgRet", this.hasImgRet, this.imgRet_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("RemarkPYInitial", this.hasRemarkPYInitial, this.remarkPYInitial_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("RemarkQuanPin", this.hasRemarkQuanPin, this.remarkQuanPin_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("ContactType", this.hasContactType, this.contactType_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("RoomInfoCount", this.hasRoomInfoCount, this.roomInfoCount_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField<RoomInfo>("RoomInfoList", this.roomInfoList_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("DomainList", this.hasDomainList, this.domainList_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("ChatRoomNotify", this.hasChatRoomNotify, this.chatRoomNotify_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("AddContactScene", this.hasAddContactScene, this.addContactScene_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("ExtInfo", this.hasExtInfo, this.extInfo_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("ExtUpdateSeq", this.hasExtUpdateSeq, this.extUpdateSeq_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("ImgUpdateSeq", this.hasImgUpdateSeq, this.imgUpdateSeq_, writer);
			GeneratedMessageLite<ContactProfile, ContactProfile.Builder>.PrintField("Alias", this.hasAlias, this.alias_, writer);
		}
		public static ContactProfile ParseFrom(byte[] data)
		{
			return ContactProfile.CreateBuilder().MergeFrom(data).BuildParsed();
		}
		private ContactProfile MakeReadOnly()
		{
			this.roomInfoList_.MakeReadOnly();
			return this;
		}
		public static ContactProfile.Builder CreateBuilder()
		{
			return new ContactProfile.Builder();
		}
		public override ContactProfile.Builder ToBuilder()
		{
			return ContactProfile.CreateBuilder(this);
		}
		public override ContactProfile.Builder CreateBuilderForType()
		{
			return new ContactProfile.Builder();
		}
		public static ContactProfile.Builder CreateBuilder(ContactProfile prototype)
		{
			return new ContactProfile.Builder(prototype);
		}
		static ContactProfile()
		{
			ContactProfile.defaultInstance = new ContactProfile().MakeReadOnly();
			ContactProfile._contactProfileFieldNames = new string[]
			{
				"AddContactScene",
				"Alias",
				"BitMask",
				"BitVal",
				"ChatRoomNotify",
				"ContactType",
				"DomainList",
				"ExtInfo",
				"ExtUpdateSeq",
				"ImgBuf",
				"ImgRet",
				"ImgUpdateSeq",
				"NickName",
				"PYInitial",
				"QuanPin",
				"Remark",
				"RemarkPYInitial",
				"RemarkQuanPin",
				"RoomInfoCount",
				"RoomInfoList",
				"Sex",
				"UserName"
			};
			ContactProfile._contactProfileFieldTags = new uint[]
			{
				144u,
				178u,
				56u,
				64u,
				136u,
				104u,
				130u,
				154u,
				160u,
				50u,
				80u,
				168u,
				18u,
				26u,
				34u,
				74u,
				90u,
				98u,
				112u,
				122u,
				40u,
				10u
			};
			object.ReferenceEquals(micromsg.Proto.ContactProfile.Descriptor, null);
		}
	}
}
